package com.colabo.j2ee.web.oaf.security;

import java.util.Map;

import com.colabo.j2ee.web.core.exception.ServiceException;


/**
 * 角色授权业务操作接口
 */
public interface IRoleMaintainService {	
	public static final String	BEAN_ID	= "WfRoleService";
	
	/**
	 * 得到所有记录
	 *
	 * @param aPageSize
	 * 				每页记录数，从数据库中查出相应数量的记录
	 * @return 对象数组，有两个对象，第一个对象为查询记录的<code>List</code>集合对象，第二个为数据库中总记录数
	 * @throws ServiceException
	 */
	public Object[] initData(int aPageSize) throws ServiceException;
	
	/**
	 * 批量更新数据
	 * 
	 * @param aObjectList
	 * 				对象列表，有三个值，删除<code>bean</code>列表、更新<code>bean</code>的列表、新增<code>bean</code>的列表
	 * @return 整数对象数组，操作成功受影响的记录数，有三个值，插入成功的记录数、更新成功的记录数、删除成功的记录数
	 * @throws ServiceException
	 */
	public String saveData(Map aObjectList) throws ServiceException;	

	/**
	 * 条件查询，根据传入的条件，进行数据查询
	 * 
	 * @param aParams
	 * 				查询条件集合
	 * @param aOffset
	 * 				记录开始位置
	 * @param aPageSize
	 * 				查询记录条数
	 * @return 对象数组，有两个对象，第一个对象为查询记录的<code>List</code>集合对象，第二个为数据库中符合查询条件的总记录数
	 * @throws ServiceException
	 */			
	public Object[] queryData(Map aParams, int aOffset, int aPageSize) throws ServiceException;
	
	/**
	 * 重新调用数据，一般情况下调用<code>queryData</code>方法
	 * 
	 * @param aParams
	 * 				属性值数组
	 * @param aOffset
	 * 				记录开始位置
	 * @param aPageSize
	 * 				查询记录条数
	 * @return 对象数组，有两个对象，第一个对象为查询记录的List集合对象，第二个为数据库中总记录数
	 * @throws ServiceException
	 */
	public Object[] reloadData(Map aParams, int aOffset, int aPageSize) throws ServiceException;
	
	/**
	 * 保存角色映射的岗位
	 * @param roles 角色
	 * @param units 单位
	 * @throws ServiceException
	 */
	public void saveRolePosition(String roles,String units)throws ServiceException;
}
